package com.wan.util;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.EnumUtil;
import com.sun.istack.internal.NotNull;
import com.wan.data.redis.jedis.JedisMode;

import java.util.EnumSet;

public class ObjectUtil {
    /**
     * 是否为空、空字符或者为0
     */
    public static boolean isEmptyOrZero(Object obj){
        return isEmpty(obj) || isZero(obj);
    }

    /**
     * 是否为空或者为0
     */
    public static boolean isNullOrZero(Object obj){
        return obj == null || isZero(obj);
    }

    /**
     * 是否为0
     */
    public static boolean isZero(@NotNull Object obj){
        Class<?> wrap = Convert.wrap(obj.getClass());
        if(Number.class.isAssignableFrom(wrap)){
            Number number = (Number) obj;
            return number.longValue() == 0;
        }
        return false;
    }

    /**
     * 是否为空或者空字符
     */
    public static boolean isEmpty(Object obj){
        if(obj == null){
            return true;
        }
        if(obj instanceof String){
            String string = (String) obj;
            return string.isEmpty();
        }
        return false;
    }

    public static <E extends Enum<E>> String enumString(Class<E> enumCls){
        EnumSet<E> enumSet = EnumSet.allOf(enumCls);
        return enumSet.toString();
    }

}
